The rise in electronic and digital device technology has rapidly changed the way society communicates, interacts, and consumes goods and services. Modern computing devices, allow organizations and users to have access to a variety of useful applications in many locations. Using such applications results in the generation of a large amount of data. Storing and retrieving the produced data is a significant challenge associated with providing useful applications and devices.
The data generated by online services and other applications can be stored at data storage facilities. As the amount of data grows, having a plurality of users sending and requesting data can result in complications that reduce efficiency and speed. Quick access time in storage systems is essential for good performance. In response, efficient scheduling of computing tasks in storage infrastructures can improve the overall functioning of a data storage system significantly.
A Hyper Converged Infrastructure (“HCI”) is a rack based system with combination of compute, storage and networking components. Each rack in the HCI has one or (typically) more node(s), each of which typically includes compute, storage and networking capabilities. All nodes in a rack are connected to a Top of the Rack (“TOR”) switch to access the external network. The number of nodes in the rack can vary based on the capacity requirements, which can change dynamically over time.
In conventional Hyper Converged Infrastructure systems, there is no standard abstraction of the hardware on the nodes at the operating system level. To the extent that some systems provide some level of abstraction at all, it is dependent on the specific type of operating system running on a given node. This negatively impacts scheduling tasks on multiple ones of the nodes on a rack. This is compounded further when different ones of the nodes run different operating systems.